(function ($) {

  $.fn.serializeDict = function () {
    if (!this.is('form')) {
      throw 'use serializeDict on <form> only'
    }
    var data = this.serializeArray();
    var dict = {};
    data.forEach(function (field) {
      dict[field.name] = field.value
    });
    return dict;
  };

}(jQuery));

UTILS = {
  getUrlParamByName: function (name, url) {
    if (!url) url = window.location.href;
    name = name.replace(/[\[\]]/g, "\\$&");
    var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
      results = regex.exec(url);
    if (!results) return null;
    if (!results[2]) return '';
    return decodeURIComponent(results[2].replace(/\+/g, " "));
  }
};
